﻿#include<iostream>
#include<set>
using namespace std;

//int main()
//{
//	set<int, greater<int>> s = {10,6,12,22,4};
//	s.insert(5);
//	s.insert(2);
//	s.insert(7);
//	s.insert(5);
//
//	auto it = s.begin();
//	while (it != s.end())
//	{
//		cout << *it << " ";
//		it++;
//	}
//	cout << endl;
//	return 0;
//}


//int main()
//{
//	set<int> s = { 4,2,7,2,8,5,9 };
//	for (auto e : s)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//	// 删除最⼩值
//	s.erase(s.begin());
//	for (auto e : s)
//	{
//		cout << e << " ";
//	}
//
//	cout << endl;
//	// 直接删除x
//	int x;
//	cin >> x;
//	int num = s.erase(x);
//	if (num == 0)
//	{
//		cout << x << "不存在！" << endl;
//	}
//	for (auto e : s)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	// 直接查找在利⽤迭代器删除x
//	cin >> x;
//	auto pos = s.find(x);
//	if (pos != s.end())
//	{
//		s.erase(pos);
//	} 
//	else
//	{
//	cout << x << "不存在！" << endl;
//	} 
//	for (auto e : s)
//	{
//		cout << e << " ";
//	} 
//	cout << endl;
//
//	// 算法库的查找 O(N)
//	auto pos1 = find(s.begin(), s.end(), x);
//	// set⾃⾝实现的查找 O(logN)
//	auto pos2 = s.find(x);
//
//	cin >> x;
//	if (s.count(x))
//	{
//		cout << x << "在" << endl;
//	}
//	else
//	{
//		cout << x << "不在" << endl;
//	}
//	return 0;
//}

//int main()
//{
//	std::set<int> myset;
//	for (int i = 1; i < 10; i++)
//	myset.insert(i * 10); // 10 20 30 40 50 60 70 80 90
//	for (auto e : myset)
//	{
//		cout << e << " ";
//	} 
//	cout << endl;
//
//	// 实现查找到的[itlow,itup)包含[30, 60]区间
//	// 
//	// 返回 >= 30
//	auto itlow = myset.lower_bound(30);
//	// 返回 > 60
//	auto itup = myset.upper_bound(60);
//
//	myset.erase(itlow,itup);
//
//	for (auto e : myset)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	return 0;
//}

//int main()
//{
//	// 相⽐set不同的是，multiset是排序，但是不去重
//	multiset<int> s = { 4,2,7,2,4,8,4,5,4,9 };
//	auto it = s.begin();
//	while (it != s.end())
//	{
//		cout << *it << " ";
//		++it;
//	} 
//	cout << endl;
//
//	// 相⽐set不同的是，x可能会存在多个，find查找中序的第⼀个
//	int x;
//	cin >> x;
//	auto pos = s.find(x);
//	while (pos != s.end() && *pos == x)
//	{
//		cout << *pos << " ";
//		++pos;
//	} 
//	cout << endl;
//	return 0;
//}



////////////////////////////////////////////////////////////////
// 
//#include<map>
//
//int main()
//{
//	pair<string, string> kv1 =  {"left", "左边"};
//
//	// initializer_list构造及迭代遍历
//	map<string, string> dict = { {"left", "左边"}, {"right", "右边"},{"insert", "插入"},{ "string", "字符串" } };
//
//	map<string, string>::iterator it = dict.begin();
//	while (it != dict.end())
//	{
//		cout << (*it).first << ":" << (*it).second << endl;
//		++it;
//	}
//	cout << endl;
//
//	for (const auto& e : dict)
//	{
//		cout << e.first << ":" << e.second << endl;
//	}
//	cout << endl;
//
//	string str;
//	while (cin >> str)
//	{
//		auto ret = dict.find(str);
//		if (ret != dict.end())
//		{
//			cout << "->" << ret->second << endl;
//		} 
//		else
//		{
//		cout << "⽆此单词，请重新输⼊" << endl;
//		}
//	}
//
//
//
//	return 0;
//}


int main()
{

	return 0;
}